# 需求：打开注册A.html页面，完成以下操作：
# 1).点击 alert 按钮（触发警告框弹窗）
# 2).关闭警告框（alert弹窗）
# 3).输入用户名：admin

# 从time模块导入sleep函数，用于操作间隔暂停（确保弹窗加载、操作生效）
from time import sleep
# 从selenium库导入webdriver模块，用于创建浏览器驱动、控制浏览器
from selenium import webdriver
# 导入ActionChains类（此处未实际使用，保留原导入，可后续扩展）
from selenium.webdriver import ActionChains
# 导入By类：适配新版selenium，替代已弃用的find_element_by_*方法
from selenium.webdriver.common.by import By
# 从selenium导入Keys类（此处未实际使用，保留原导入，可后续扩展）
from selenium.webdriver.common.keys import Keys
# 导入WebDriverWait类（此处未实际使用，保留原导入，可后续扩展显式等待）
from selenium.webdriver.support.wait import WebDriverWait

# 1. 初始化并打开Chrome浏览器
# executable_path：指定ChromeDriver驱动的本地绝对路径（适配selenium3及以下版本）
# 驱动作用：建立Python代码与Chrome浏览器的通信桥梁，实现对浏览器的控制
driver = webdriver.Chrome(executable_path='D:/chrome_driver/chromedriver.exe')
# 注释：selenium4及以上版本推荐写法（无需手动指定驱动路径）
# 需提前安装 webdriver-manager 库（pip install webdriver-manager），自动匹配浏览器版本下载驱动
# driver = webdriver.Chrome() # 创建Chrome浏览器对象，后续通过该对象执行所有操作

# 放大浏览器窗口
# maximize_window()：将窗口调整为屏幕最大尺寸，避免按钮/输入框因窗口过小被隐藏
driver.maximize_window()

# 2. 访问目标页面（注册A页面）
# get()方法：接收完整网络URL，让浏览器加载并显示该网页
driver.get("http://121.43.169.97:8848/pageA.html")

# ---------------------- 核心操作1：点击alert按钮，触发警告框 ----------------------
# 定位alert按钮：通过CSS_SELECTOR定位id为"alerta"的按钮（#表示id选择器，匹配id="alerta"的元素）
# 修复：替换已弃用的find_element_by_css_selector→使用find_element(By.CSS_SELECTOR, 定位器)
alert_button = driver.find_element(By.CSS_SELECTOR, "#alerta")

# 点击按钮：触发页面的alert警告框弹窗（点击后会阻塞页面操作，需先关闭弹窗才能继续）
alert_button.click()

# 暂停1秒：等待alert弹窗完全加载（弹窗加载速度快，短时间等待即可，避免未找到弹窗）
sleep(1)

# ---------------------- 核心操作2：关闭alert警告框 ----------------------
# 1. 切换到alert弹窗：driver.switch_to.alert 获取当前页面的alert弹窗对象
# 2. dismiss()方法：关闭alert弹窗（等价于点击弹窗的"取消"按钮，或右上角关闭按钮）
# 补充：若弹窗有"确定"按钮，可使用 accept() 方法（alert弹窗通常只有一个按钮，两者效果一致）
driver.switch_to.alert.dismiss()
# 或使用 accept() 关闭（二选一即可）：
# driver.switch_to.alert.accept()

# ---------------------- 核心操作3：输入用户名admin ----------------------
# 定位用户名输入框：通过CSS_SELECTOR定位id为"userA"的输入框
username_input = driver.find_element(By.CSS_SELECTOR, "#userA")

# 向输入框输入文本"admin"（弹窗关闭后页面操作恢复正常，可正常输入）
username_input.send_keys("admin")

# （可选）延长暂停时间观察最终效果，然后关闭浏览器
sleep(3)
# 关闭浏览器并释放资源
driver.quit()